package storm;
// @Author   :陈彤
import org.apache.storm.Config;

import org.apache.storm.LocalCluster;
import org.apache.storm.StormSubmitter;
import org.apache.storm.topology.TopologyBuilder;
import org.apache.storm.generated.AlreadyAliveException;
import org.apache.storm.generated.AuthorizationException;
import org.apache.storm.generated.InvalidTopologyException;

/**
 * @author chentong
 * @date 2021年12月10日 20：55
 */
public class LogFileTopology {
    public static void main(String[] args) throws AuthorizationException, InvalidTopologyException, AlreadyAliveException {
        TopologyBuilder builder = new TopologyBuilder();
        builder.setSpout("Spout", new LogFileSpout());
        builder.setSpout("Spout2",new LogFileSpout2());
        //builder.setBolt("totalBolt",new totalBolt()).shuffleGrouping("Spout").shuffleGrouping("Spout2");
        builder.setBolt("Bolt1",new LogFileBolt()).shuffleGrouping("Spout");
        builder.setBolt("Bolt2",new LogFileBolt2()).shuffleGrouping("Spout2");
        Config config = new Config();
        StormSubmitter.submitTopology("topology1", config, builder.createTopology());
//        LocalCluster localCluster = new LocalCluster();
//        Config config = new Config();
//        localCluster.submitTopology("topology1", config,
//                builder.createTopology());
    }
    /*
    （1） 界面每 3 秒刷新一次，如果能做到 2 秒或 1 秒刷新一次，可加分；
    （2） 展示当前订单的已处理速度，单位为“条/秒”；
    （3） 大数据看板界面应简洁大气，有特点；
    （4） 展示截止当前时间的总销售金额、订单数量、下单客户数基本信息；
    （5） 展示截止当前时间销量排名前 10 的图书排行榜；
    （6） 展示截止当前时间销量排名前 10 的出版社排行榜；
    （7） 展示全国各地下单客户的累计数量（按省份），在地图上直观展示；
    （8） 数据统计误差（数据丢失、统计错误）不超过 1%，应设计实验计算数据误差率；
    （9） 展示的数据延迟应不超过 30 秒，每次刷新时应显示获取的数据最新时间；
    （10） 测试出系统的最大承载负荷量，即最大并发线程数；
    （11） 如果实现了以上规定之外的有特色数据展示功能，可加分；*/

}